package com.yunzhi.net.enumerate;

/**
 * Author by Mr.Meng
 * created 2019/5/15
 *
 * @desc 网络请求失败原因
 */
public enum ExceptionReason {
    /**
     * 服务器不理解请求的语法。
     */
    BAD_REQUEST(400, "错误请求"),

    /**
     * 请求要求身份验证。 对于需要登录的网页，服务器可能返回此响应。
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 服务器拒绝请求
     */
    FORBIDDEN(403, "服务器已经理解请求，但是拒绝执行它"),

    /**
     * 服务器找不到请求的网页
     */
    NOT_FOUND(404, "服务器异常，请稍后再试"),

    /**
     * 无法使用请求的内容特性响应请求的网页。
     * 不接受
     */
    FAIL_QUEST(406, "拒绝请求"),

    /**
     * 连接超时
     */
    CONNECT_TIMEOUT(408, "连接超时"),

    /**
     * 服务器遇到错误，无法完成请求。
     */
    INTERNAL_SERVER_ERROR(500, "服务器内部错误"),

    /**
     * 服务器作为网关或代理，从上游服务器收到无效响应。
     */
    BAD_GATEWAY(502, "错误网关"),

    /**
     * 服务器目前无法使用（由于超载或停机维护）。 通常，这只是暂时状态。
     */
    SERVICE_UNAVAILABLE(503, "服务不可用"),
    /**
     * 服务器作为网关或代理，但是没有及时从上游服务器收到请求。
     */
    GATEWAY_TIMEOUT(504, "网关超时"),

    /**
     * 解析数据失败
     */
    PARSE_ERROR(600, "解析数据失败"),

    /**
     * 未知错误
     */
    UNKNOWN_ERROR(601, "未知错误"),

    /**
     * 指示主机 IP 地址无法确定而抛出的异常。
     */
    UNKNOWN_HOST_EXCEPTION_ERROR(602, "网络不可用");


    private int code;
    private String value;

    ExceptionReason(int code, String value) {
        this.value = value;
        this.code = code;
    }

    public String getValue() {
        return value;
    }

    public int getCode() {
        return code;
    }
}
